<!DOCTYPE html>
<!--
功能：WebSocket使用示例
 -->
<html>
<head>
    <!--<link href="/webjars/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="/main.css" rel="stylesheet">
    <script src="/webjars/jquery/jquery.min.js"></script>-->
    <meta charset="UTF-8">
    <title>websocket测试</title>
    <style type="text/css">
        h3, h4 {
            text-align: center;
        }
    </style>
</head>
<body>

<h3>WebSocket测试，在<span style="color:red">控制台</span>查看测试信息输出！</h3>
<h4>http://okcdev.cn</h4>
<h4>
    [url=/ws/sendOne?message=单发消息内容&id=none]单发消息链接[/url]
    [url=/ws/sendAll?message=群发消息内容]群发消息链接[/url]
</h4>
<div class="row">
    <div class="col-md-12">
        <table id="conversation" class="table table-striped">
            <thead>
            <tr>
                <th>Greetings</th>
            </tr>
            </thead>
            <tbody id="greetings">
            </tbody>
        </table>
    </div>
</div>


<script type="text/javascript">

    function setMessageInnerHTML(sendMessage) {
        document.getElementById('greetings').innerHTML += sendMessage + '<br/>';
    }

    var socket;
    var userId = 11111111111;
    if (typeof (WebSocket) == "undefined") {
        console.log("遗憾：您的浏览器不支持WebSocket");
    } else {
        console.log("恭喜：您的浏览器支持WebSocket");

        //实现化WebSocket对象
        //指定要连接的服务器地址与端口建立连接
        //注意ws、wss使用不同的端口。我使用自签名的证书测试，
        //无法使用wss，浏览器打开WebSocket时报错
        //ws对应http、wss对应https。
        socket = new WebSocket("ws://localhost:9123/websocket/" + userId);
        //连接打开事件
        socket.onopen = function () {
            console.log("Socket 已打开");
            //socket.send("消息发送测试(From Client)");
        };
        //收到消息事件
        socket.onmessage = function (msg) {
            console.log(msg.data);
            setMessageInnerHTML(msg.data);
            //$("#greetings").append("<tr><td>" + msg.data + "</td></tr>");
        };
        //连接关闭事件
        socket.onclose = function () {
            console.log("Socket已关闭");
        };
        //发生了错误事件
        socket.onerror = function () {
            alert("Socket发生了错误");
        }

        //监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
        window.onbeforeunload = function () {
            closeWebSocket();
        }

        //关闭WebSocket连接
        function closeWebSocket() {
            socket.close();
        }

        //窗口关闭时，关闭连接
        /*window.unload=function() {
            socket.close();
        };*/
    }
</script>

</body>
</html>